// eslint-disable-next-line import/no-extraneous-dependencies
import type { Request, Response } from 'express';
import type { ListItemDataType } from './data.d';
const titles = [
  'IEEE Xplore Digital Library',
  'Bilibili',
  '中国大学MOOC',
  'CSDN',
  'ProcessOn',
  '河北工业大学官网',
  '电气工程学院官网'
];
const avatars = [
  'https://i0.hdslb.com/bfs/archive/c8fd97a40bf79f03e7b76cbc87236f612caef7b2.png', // IEEE Xplore Digital Library
  'https://i0.hdslb.com/bfs/archive/c8fd97a40bf79f03e7b76cbc87236f612caef7b2.png', // Bilibili
  'https://edu-image.nosdn.127.net/3310f128e53b406f94400f7ae6046db2.png?imageView&quality=100', // 中国大学MOOC
  'https://img-home.csdnimg.cn/images/20201124032511.png', // CSDN
  'https://www.processon.com/assets/images/logo_small.svg', // ProcessOn
];
const covers = [
  'https://gw.alipayobjects.com/zos/rmsportal/uMfMFlvUuceEyPpotzlq.png',
  'https://gw.alipayobjects.com/zos/rmsportal/iZBVOIhGJiAnhplqjvZW.png',
  'https://gw.alipayobjects.com/zos/rmsportal/iXjVmWVHbCJAyqvDxdtx.png',
  'https://gw.alipayobjects.com/zos/rmsportal/gLaIAoVWTtLbBWZNYEMg.png',
];
const desc = [
  '那是一种内在的东西， 他们到达不了，也无法触及的',
  '希望是一个好东西，也许是最好的，好东西是不会消亡的',
  '生命就像一盒巧克力，结果往往出人意料',
  '城镇中有那么多的酒馆，她却偏偏走进了我的酒馆',
  '那时候我只会想自己想要什么，从不想自己拥有什么',
];

const user = [
  '付小小',
  '曲丽丽',
  '林东东',
  '周星星',
  '吴加好',
  '朱偏右',
  '鱼酱',
  '乐哥',
  '谭小仪',
  '仲尼',
];

// 当前用户信息
const currentUseDetail = {
  name: '蛇蛇',
  avatar: 'http://10.202.81.223:11110/freshSystem/downloadFile/1684194446371741697',
  userid: '185874',
  email: 'antdesign@alipay.com',
  signature: '电气学子，探索未来',
  title: '班级',
  group: '电气工程专业',
  tags: [
    {
      key: '0',
      label: '很有想法的',
    },
    {
      key: '1',
      label: '乐观',
    },
    {
      key: '2',
      label: '勇敢',
    },
    {
      key: '3',
      label: '积极',
    },
    {
      key: '4',
      label: '阳光',
    },
    {
      key: '5',
      label: '有担当',
    },
  ],
  notice: [
    {
      id: 'xx01',
      title: "河北工业大学官网",
      logo: '',
      description: '河北工业大学始建于1903年，前身源于北洋工艺学堂，是河北省唯一一所211高校。' ,
      updatedAt: new Date(),
      member: '河北工业大学官网',
      href: 'https://www.hebut.edu.cn/',
      memberLink: '',
    },
    {
      id: 'xx02',
      title: "电气工程学院官网",
      logo: '',
      description: '电气工程学院有90年的发展历史，起源于1929年设立的机电工程系。' ,
      updatedAt: new Date(),
      member: '电气工程学院',
      href: 'https://ee.hebut.edu.cn/',
      memberLink: '',
    },
    {
      id: 'xxx1',
      title: 'IEEE Xplore Digital Library',
      logo: '',
      description: 'IEEE（电气和电子工程师学会）的数字图书馆，提供大量的学术文章和研究论文。' ,
      updatedAt: new Date(),
      member: 'IEEE Xplore Digital Library',
      href: 'https://ieeexplore.ieee.org/Xplore/home.jsp',
      memberLink: '',
    },
    {
      id: 'xxx2',
      title: "Bilibili",
      logo: '',
      description: 'B站学习区',
      updatedAt: new Date('2017-07-24'),
      member: 'Bilibili',
      href: 'https://www.bilibili.com/',
      memberLink: '',
    },
    {
      id: 'xxx3',
      title: "中国大学MOOC",
      logo: '',
      description: '中国大学MOOC',
      updatedAt: new Date(),
      member: '中国大学MOOC',
      href: 'https://www.icourse163.org/',
      memberLink: '',
    },
    {
      id: 'xxx4',
      title: "CSDN",
      logo: '',
      description: 'CSDN',
      updatedAt: new Date(),
      member: 'CSDN',
      href: 'https://www.csdn.net/',
      memberLink: '',
    },
    {
      id: 'xxx5',
      title: "ProcessOn",
      logo: '',
      description: '免费在线流程图思维导图',
      updatedAt: new Date(),
      member: 'ProcessOn',
      href: 'https://www.processon.com/',
      memberLink: '',
    }
  ],
  notifyCount: 12,
  unreadCount: 11,
  country: 'China',
  geographic: {
    province: {
      label: '浙江省',
      key: '330000',
    },
    city: {
      label: '杭州市',
      key: '330100',
    },
  },
  address: '西湖区工专路 77 号',
  phone: '0752-268888888',
};

function fakeList(count: number): ListItemDataType[] {
  const list = [];
  for (let i = 0; i < count; i += 1) {
    list.push({
      id: `fake-list-${i}`,
      owner: user[i % 10],
      title: titles[i % 8],
      avatar: avatars[i % 8],
      cover: parseInt(`${i / 4}`, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)],
      status: ['active', 'exception', 'normal'][i % 3] as
        | 'normal'
        | 'exception'
        | 'active'
        | 'success',
      percent: Math.ceil(Math.random() * 50) + 50,
      logo: avatars[i % 8],
      href: 'https://ant.design',
      updatedAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i).getTime(),
      createdAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i).getTime(),
      subDescription: desc[i % 5],
      description:
        '在中台产品的研发过程中，会出现不同的设计规范和实现方式，但其中往往存在很多类似的页面和组件，这些类似的组件会被抽离成一套标准规范。',
      activeUser: Math.ceil(Math.random() * 100000) + 100000,
      newUser: Math.ceil(Math.random() * 1000) + 1000,
      star: Math.ceil(Math.random() * 100) + 100,
      like: Math.ceil(Math.random() * 100) + 100,
      message: Math.ceil(Math.random() * 10) + 10,
      content:
        '段落示意：蚂蚁金服设计平台 ant.design，用最小的工作量，无缝接入蚂蚁金服生态，提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design，用最小的工作量，无缝接入蚂蚁金服生态，提供跨越设计与开发的体验解决方案。',
      members: [
        {
          avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png',
          name: '曲丽丽',
          id: 'member1',
        },
        {
          avatar: 'https://gw.alipayobjects.com/zos/rmsportal/tBOxZPlITHqwlGjsJWaF.png',
          name: '王昭君',
          id: 'member2',
        },
        {
          avatar: 'https://gw.alipayobjects.com/zos/rmsportal/sBxjgqiuHMGRkIjqlQCd.png',
          name: '董娜娜',
          id: 'member3',
        },
      ],
    });
  }

  return list;
}

function getFakeList(req: Request, res: Response) {
  const params = req.query as any;

  const count = Number(params.count) * 1 || 5;

  const result = fakeList(count);
  return res.json({
    data: {
      list: result,
    },
  });
}

// 获取用户信息
function getCurrentUser(req: Request, res: Response) {
  return res.json({
    data: currentUseDetail,
  });
}

export default {
  'GET  /api/fake_list_Detail': getFakeList,
  // 支持值为 Object 和 Array
  'GET  /api/currentUserDetail': getCurrentUser,
};
